{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "随机数和随机分布\n",
    "rand和random_sample\n",
    "二者都是均匀分布得随机数生成函数\n",
    "rand函数传入多个整数参数作为生成数组的维度\n",
    "rand_sample传入一个n维的元组元素作为参数"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXQAAAD8CAYAAABn919SAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvIxREBQAADatJREFUeJzt3W2MpeVdx/Hvr1CsDyilO+CGB4cmW8OmSaGZEAyJWmgbLA3LC0ogtq7Jxk3rQzQ10dW+8ekFmFjUhEQ3Qro1tkBR3E1bH3DLBm0K7VAojyJ0XXFlw04tYBtj2y1/X5ybZgOze+45c86ZOdd8P8nk3Pd9rjPnf80585trrvvhpKqQJM2+1611AZKk8TDQJakRBrokNcJAl6RGGOiS1AgDXZIaYaBLUiMMdElqhIEuSY04dZpPtmnTppqfn5/mU0rSzHvwwQe/VlVzw9pNNdDn5+dZXFyc5lNK0sxL8h992jnlIkmNMNAlqREGuiQ1wkCXpEYY6JLUCANdkhphoEtSIwx0SWqEgS5JjZjqmaLSrJvf9ZnebQ/deNUEK5FeyxG6JDXCQJekRhjoktQIA12SGmGgS1IjDHRJaoSBLkmN6HUcepJDwDeA7wLHqmohyZnAHcA8cAi4rqpemEyZkqRhVjJCf0dVXVRVC936LmB/VW0B9nfrkqQ1spopl23Anm55D3DN6suRJI2qb6AX8I9JHkyys9t2dlUdAehuz1rugUl2JllMsri0tLT6iiVJy+p7LZfLquq5JGcB9yT5175PUFW7gd0ACwsLNUKNkqQeeo3Qq+q57vYocDdwCfB8ks0A3e3RSRUpSRpuaKAn+cEkp7+yDLwbeAzYB2zvmm0H9k6qSEnScH2mXM4G7k7ySvtPVNXfJ/kScGeSHcCzwPsmV6YkaZihgV5VB4G3LbP9v4ErJlGUJGnlPFNUkhphoEtSIwx0SWqEgS5JjTDQJakRBrokNcJAl6RGGOiS1AgDXZIaYaBLUiMMdElqhIEuSY0w0CWpEQa6JDXCQJekRhjoktQIA12SGmGgS1Ij+nymqKQZMr/rM73aHbrxqglXomlzhC5JjTDQJakRBrokNcJAl6RGGOiS1AgDXZIaYaBLUiMMdElqhIEuSY0w0CWpEQa6JDWi97VckpwCLAL/VVXvTXIBcDtwJvBl4ANV9e3JlKmT8dodq9f3ZziJ7+nronFZyQj9V4Enj1u/Cbi5qrYALwA7xlmYJGllegV6knOBq4C/6NYDXA7c1TXZA1wziQIlSf30HaH/MfAbwMvd+puAF6vqWLd+GDhnzLVJklZgaKAneS9wtKoePH7zMk3rBI/fmWQxyeLS0tKIZUqShukzQr8MuDrJIQY7QS9nMGI/I8krO1XPBZ5b7sFVtbuqFqpqYW5ubgwlS5KWMzTQq+q3qurcqpoHrgc+V1U/C9wLXNs12w7snViVkqShVnMc+m8CH07yDIM59VvHU5IkaRQr+kzRqjoAHOiWDwKXjL8kSdIoPFNUkhphoEtSI1Y05aKT81RvSWvJEbokNcJAl6RGGOiS1Ajn0CVNnfubJsMRuiQ1wkCXpEYY6JLUCOfQNbKVfGxb37lQ51anZ9w/60l8jJ9WxhG6JDXCQJekRhjoktQI59A1kzbiXLtz1Ce2VvsD1tv7yxG6JDXCQJekRhjoktQI59A3kFmdF5TUjyN0SWqEgS5JjTDQJakRG3YO3flkSa1xhC5JjTDQJakRBrokNWJm5tCd85akk3OELkmNMNAlqREGuiQ1YmigJ3lDki8m+UqSx5P8brf9giQPJHk6yR1JTpt8uZKkE+kzQv8WcHlVvQ24CLgyyaXATcDNVbUFeAHYMbkyJUnDDA30Gvhmt/r67quAy4G7uu17gGsmUqEkqZdec+hJTknyMHAUuAf4KvBiVR3rmhwGzplMiZKkPnodh15V3wUuSnIGcDdw4XLNlntskp3AToDzzz9/xDKl0fg5nNpIVnSUS1W9CBwALgXOSPLKH4RzgedO8JjdVbVQVQtzc3OrqVWSdBJ9jnKZ60bmJPl+4J3Ak8C9wLVds+3A3kkVKUkars+Uy2ZgT5JTGPwBuLOqPp3kCeD2JH8APATcOsE6e5uFf7E34mUMZuF10fJ87WbH0ECvqkeAi5fZfhC4ZBJFSZJWzjNFJakRBrokNWJmLp+7ETl3Ka1v621/mCN0SWqEgS5JjTDQJakRzqEP4Ty2pFnhCF2SGmGgS1IjDHRJaoRz6JI2jNb3iTlCl6RGGOiS1AgDXZIaYaBLUiMMdElqhIEuSY0w0CWpEQa6JDXCQJekRhjoktQIA12SGuG1XPQarV/vYr3x561xcYQuSY0w0CWpEQa6JDXCQJekRhjoktQIA12SGmGgS1Ijhh6HnuQ84OPAjwIvA7ur6k+SnAncAcwDh4DrquqFyZUqaaPxGP2V6TNCPwb8elVdCFwK/FKSrcAuYH9VbQH2d+uSpDUyNNCr6khVfblb/gbwJHAOsA3Y0zXbA1wzqSIlScOtaA49yTxwMfAAcHZVHYFB6ANnjbs4SVJ/vQM9yQ8Bfw38WlX9zwoetzPJYpLFpaWlUWqUJPXQK9CTvJ5BmP9VVf1Nt/n5JJu7+zcDR5d7bFXtrqqFqlqYm5sbR82SpGUMDfQkAW4Fnqyqjx531z5ge7e8Hdg7/vIkSX31uXzuZcAHgEeTPNxt+23gRuDOJDuAZ4H3TaZESVIfQwO9qv4FyAnuvmK85UiSRuWZopLUCANdkhphoEtSIwx0SWqEgS5JjTDQJakRBrokNcJAl6RGGOiS1AgDXZIaYaBLUiMMdElqhIEuSY0w0CWpEQa6JDXCQJekRhjoktQIA12SGmGgS1IjDHRJaoSBLkmNMNAlqREGuiQ1wkCXpEYY6JLUCANdkhphoEtSIwx0SWqEgS5JjTDQJakRQwM9yW1JjiZ57LhtZya5J8nT3e0bJ1umJGmYPiP0jwFXvmrbLmB/VW0B9nfrkqQ1NDTQq+o+4Ouv2rwN2NMt7wGuGXNdkqQVGnUO/eyqOgLQ3Z41vpIkSaOY+E7RJDuTLCZZXFpamvTTSdKGNWqgP59kM0B3e/REDatqd1UtVNXC3NzciE8nSRpm1EDfB2zvlrcDe8dTjiRpVH0OW/wk8AXgx5McTrIDuBF4V5KngXd165KkNXTqsAZVdcMJ7rpizLVIklbBM0UlqREGuiQ1wkCXpEYY6JLUCANdkhphoEtSIwx0SWqEgS5JjTDQJakRBrokNcJAl6RGGOiS1AgDXZIaYaBLUiMMdElqhIEuSY0w0CWpEQa6JDXCQJekRhjoktQIA12SGmGgS1IjDHRJaoSBLkmNMNAlqREGuiQ1wkCXpEYY6JLUCANdkhphoEtSI1YV6EmuTPJUkmeS7BpXUZKklRs50JOcAtwC/AywFbghydZxFSZJWpnVjNAvAZ6pqoNV9W3gdmDbeMqSJK3UagL9HOA/j1s/3G2TJK2BU1fx2CyzrV7TKNkJ7OxWv5nkqRGeaxPwtREeN+s2Yr/t88awofqcm4DV9fnH+jRaTaAfBs47bv1c4LlXN6qq3cDuVTwPSRaramE132MWbcR+2+eNwT5PxmqmXL4EbElyQZLTgOuBfeMpS5K0UiOP0KvqWJJfBv4BOAW4raoeH1tlkqQVWc2UC1X1WeCzY6rlZFY1ZTPDNmK/7fPGYJ8nIFWv2Y8pSZpBnvovSY1YV4E+7FICSb4vyR3d/Q8kmZ9+lePVo88fTvJEkkeS7E/S6/Cl9azvJSOSXJukksz80RB9+pzkuu61fjzJJ6Zd47j1eG+fn+TeJA917+/3rEWd45TktiRHkzx2gvuT5E+7n8kjSd4+1gKqal18Mdix+lXgzcBpwFeAra9q84vAn3XL1wN3rHXdU+jzO4Af6JY/tBH63LU7HbgPuB9YWOu6p/A6bwEeAt7YrZ+11nVPoc+7gQ91y1uBQ2td9xj6/ZPA24HHTnD/e4C/Y3Aez6XAA+N8/vU0Qu9zKYFtwJ5u+S7giiTLneA0K4b2uarurar/7VbvZ3C8/yzre8mI3wf+EPi/aRY3IX36/AvALVX1AkBVHZ1yjePWp88F/HC3/CMscx7LrKmq+4Cvn6TJNuDjNXA/cEaSzeN6/vUU6H0uJfC9NlV1DHgJeNNUqpuMlV4+YQeDv+6zbGifk1wMnFdVn55mYRPU53V+C/CWJJ9Pcn+SK6dW3WT06fPvAO9PcpjB0XK/Mp3S1tREL5myqsMWx6zPpQR6XW5ghvTuT5L3AwvAT020osk7aZ+TvA64Gfj5aRU0BX1e51MZTLv8NIP/wv45yVur6sUJ1zYpffp8A/CxqvqjJD8B/GXX55cnX96amWiGracRep9LCXyvTZJTGfybdrJ/b9a7XpdPSPJO4CPA1VX1rSnVNinD+nw68FbgQJJDDOYZ9834jtG+7+29VfWdqvp34CkGAT+r+vR5B3AnQFV9AXgDg+udtKzX7/yo1lOg97mUwD5ge7d8LfC56vY0zKihfe6mH/6cQZjP+rwqDOlzVb1UVZuqar6q5hnsN7i6qhbXptyx6PPe/lsGO8BJsonBFMzBqVY5Xn36/CxwBUCSCxkE+tJUq5y+fcDPdUe7XAq8VFVHxvbd13qv8DJ7gP+Nwd7xj3Tbfo/BLzQMXvBPAc8AXwTevNY1T6HP/wQ8Dzzcfe1b65on3edXtT3AjB/l0vN1DvBR4AngUeD6ta55Cn3eCnyewREwDwPvXuuax9DnTwJHgO8wGI3vAD4IfPC41/mW7mfy6Ljf254pKkmNWE9TLpKkVTDQJakRBrokNcJAl6RGGOiS1AgDXZIaYaBLUiMMdElqxP8DNXyqHCRhYRsAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "%matplotlib inline\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "data_uniform = np.random.random_sample((1000))\n",
    "\n",
    "plt.hist(data_uniform, bins=30)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "randn和standard_normal是正太分布的随机数生成函数"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "data_normal = np.random.standard_normal((1000))\n",
    "plt.hist(data_normal, bins=30)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "randint和random_integers是均匀分布的整数生成函数\n",
    "传入三个参数：low、high和size。分别代表区间的最小值和最大值，以及需要生成的数组的大小。其中size是一个n维元组数据\n",
    "randint和random_integers的区别在于：randint的范围不包括最大值，而random_integers包括最大值"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "9\n",
      "10\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "D:\\Anaconda\\lib\\site-packages\\ipykernel_launcher.py:3: DeprecationWarning: This function is deprecated. Please call randint(1, 10 + 1) instead\n",
      "  This is separate from the ipykernel package so we can avoid doing imports until\n"
     ]
    }
   ],
   "source": [
    "x1 = np.random.randint(1, 10, (100))\n",
    "print(x1.max())\n",
    "x2= np.random.random_integers(1, 10, (100))\n",
    "print(x2.max())"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "shuffle 随机打乱一个数组，并且改变次数组本身的排列"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[0 1 2 3 4 5 6 7 8 9]\n",
      "[5 7 9 6 1 3 8 4 2 0]\n"
     ]
    }
   ],
   "source": [
    "x = np.arange(10)\n",
    "print(x)\n",
    "np.random.shuffle(x)\n",
    "print(x)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "permutation用于返回一个打乱后的数组值，但是并不会改变传入的参数数组本身的值"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x = np.arange(10)\n",
    "y = np.random.permutation(x)\n",
    "x"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([9, 1, 7, 4, 2, 8, 6, 3, 5, 0])"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "二项式分布：N次伯努利实验的结果分布即为二项式分布。\n",
    "使用binomial(1,p)即为一次二项式分布\n",
    "使用binomial(1,p, n)即表示生成n维的二项式分布数组，也就是伯努利分布"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[56 47 51 ... 54 48 49]\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "D:\\Anaconda\\lib\\site-packages\\scipy\\stats\\stats.py:1713: FutureWarning: Using a non-tuple sequence for multidimensional indexing is deprecated; use `arr[tuple(seq)]` instead of `arr[seq]`. In the future this will be interpreted as an array index, `arr[np.array(seq)]`, which will result either in an error or a different result.\n",
      "  return np.add.reduce(sorted[indexer] * weights, axis=axis) / sumval\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x22ea3bf3b70>"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAX0AAAD8CAYAAACb4nSYAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvIxREBQAAIABJREFUeJzt3Xl8nNV97/HPb0arta+2LFmWbMvg3RiBWYwTcEKAAE4aCIaEkJSU9nVDmra3C2lvCaHNfSW9bWgaaBoaSCGUGEJCYxIHh2AgLMZY3jdsy5sky7Z22dqXOfePGSdCSHhkS3pmNN/366WXZp45o/nqSPrN0Xme5zzmnENERGKDz+sAIiIyflT0RURiiIq+iEgMUdEXEYkhKvoiIjFERV9EJIao6IuIxBAVfRGRGKKiLyISQ+K8DjBYbm6uKykp8TqGiEhU2bx5c4NzLu9s7SKu6JeUlFBRUeF1DBGRqGJmR8Npp+kdEZEYoqIvIhJDVPRFRGKIir6ISAxR0RcRiSEq+iIiMURFX0Qkhqjoi4jEEBV9EZEYEnFn5IpMFE9vrHrftjuWFnuQROT3VPQlpqgQS6xT0RcZwlBvDqA3CIl+KvoiI6D/FCTaaUeuiEgMUdEXEYkhKvoiIjFERV9EJIao6IuIxBAdvSMT0nCHXIrEOo30RURiiIq+iEgMUdEXEYkhKvoiIjFERV9EJIao6IuIxBAVfRGRGBJW0Tez68xsn5lVmtl9Qzy+3My2mFmfmd0y6LG7zOxA6OOu0QouIiIjd9aib2Z+4BHgemAucLuZzR3UrAr4PPD0oOdmA18DlgKXAl8zs6zzjy0iIucinJH+pUClc+6Qc64HWA2sHNjAOXfEObcDCAx67seAl5xzTc65ZuAl4LpRyC0iIucgnKJfCFQPuF8T2haOsJ5rZveYWYWZVdTX14f5pUVEZKTCKfo2xDYX5tcP67nOuUedc+XOufK8vLwwv7SIiIxUOAuu1QDTBtwvAmrD/Po1wIcHPffVMJ8rEhYtriYSvnBG+puAMjMrNbMEYBWwJsyvvw641syyQjtwrw1tExERD5y16Dvn+oB7CRbrvcCzzrndZvagmd0MYGaXmFkNcCvwfTPbHXpuE/APBN84NgEPhraJiIgHwlpP3zm3Flg7aNv9A25vIjh1M9RzHwceP4+MIiIySnQRFZFxNNT+hzuWFnuQRGKVlmEQEYkhKvoiIjFERV9EJIao6IuIxBAVfRGRGKKiLyISQ1T0RURiiIq+iEgMUdEXEYkhKvoiIjFERV9EJIao6IuIxBAVfRGRGKKiLyISQ1T0RURiiIq+iEgMUdEXEYkhKvoiIjFEl0uUiKTLCoqMDY30RURiiIq+iEgM0fSOSITSFJeMBY30RURiiIq+iEgMUdEXEYkhKvoiIjFERV9EJIaEVfTN7Doz22dmlWZ23xCPJ5rZM6HHN5pZSWh7vJk9YWY7zWyvmX11dOOLiMhInLXom5kfeAS4HpgL3G5mcwc1uxtods7NAh4CvhXafiuQ6JxbAFwM/PGZNwQRERl/4Yz0LwUqnXOHnHM9wGpg5aA2K4EnQrefA1aYmQEOSDGzOCAZ6AFOjUpyEREZsXCKfiFQPeB+TWjbkG2cc31AK5BD8A2gHTgOVAH/7JxrOs/MIiJyjsIp+jbENhdmm0uBfmAqUAr8bzOb8b4XMLvHzCrMrKK+vj6MSCIici7CKfo1wLQB94uA2uHahKZyMoAm4A7gRedcr3OuDngTKB/8As65R51z5c658ry8vJF/FyIiEpZwiv4moMzMSs0sAVgFrBnUZg1wV+j2LcB655wjOKVzjQWlAJcB745OdBERGamzLrjmnOszs3uBdYAfeNw5t9vMHgQqnHNrgMeAH5lZJcER/qrQ0x8BfgjsIjgF9EPn3I4x+D5ERlV/wHG6q5f2nn4CAUfAOeL9PhLifKQmxpEU7/c6osg5CWuVTefcWmDtoG33D7jdRfDwzMHPaxtqu0ikOXmqi/Xv1rHpSBNbjjZT1dRBYPCeqwES43zkpCQwPSeFrEnxfPiCfJIT9EYgkU9LK0vM6g84dtS08IsdtWw41IhzkJuawMXTsyjJTSErOYGUxDj8PsNn0NsfoLsvQFt3Hy0dvdSd7qLiaBMbDjWSnZLAF64o4XOXl5AxKd7rb01kWCr6EnMCzrH5aDOv7qujuaOX0twU/vSaMm5cWMCs/FTMbMi17IfSFwgwKy+VH7xxmH95aT9PbDjKf3x2CeUl2WP8XYicGxV9iSnHWzt5fusxapo7KcpK5saFU3lw5TyC5xKOXJzPxxWzcrliVi67jrXy5R9v5fb/fJsHbp6HDXkks4i3VPQlJjjneG1/Pb/Ze5LkeD+3lU9jYVEGZnbOBX+w+YUZ/M+XruQrq7fyd8/v4qaFBVw+M3dUvrbIaFHRlwmvu7ef57bUsLv2FAsKM1i5aCqTEsfmVz8jOZ7H7rqEP3lqM7/ceZy8tCRm5aeOyWuJnAstrSwT2qmuXv7jtwfZe/wUNywoYNUl08as4J/h9xkP3baY3NREfvxOFY1t3WP6eiIjoaIvE1ZLRw//+dtDNHf08vkrSlk2K3fUpnLOJjUxjjsvmw7AMxXVBNwHHP8pMo5U9GVCam7v4dHXD9He08cfXlnqyRRLTmoiNy0qoKa5k3cOa51BiQwq+jLhdHT38cO3jtDdG+DuZTMozp7kWZZFRZnMzEvh13tOcLqr17McImeo6MuE0tsf4Mm3j9LS0cOdl02nMDPZ0zxmxspFhfT2O36587inWURARV8mEOccP9lcQ3VTB58un0ZJborXkQDITUvkQ7Pz2FHTytHGdq/jSIzTIZsyYbxZ2cCuY61cN28K8wszvI7zHsvL8njncBPrdp/kj64qPecdysOdKXzH0uLziScxRCN9mRAON7Tz4u4TzJuazlVlkXdCVEKcj2suzOdIYzsH6tq8jiMxTEVfol5bdx+r36kia1ICn1pSNG6HZY5UeUkW2SkJrNt9QodwimdU9CWqOef4+bZjdPT285ml0yN6nfs4n4+PzMnneGsXu461eh1HYpSKvkS1n2+rZXftKT46ZzJTMpK8jnNWC4syyU9LZP27dRrtiye0I1c8F+4yxoOdaO3i/p/vojh7EssicB5/KD4zrr4gn2cqqtlTeyridjjLxKeRvkStr63ZRU9/gFsuLsIXofP4Q1lQlEFuagKv7qvDabQv40xFX6LSa/vrWbf7JH+6oozc1ESv44yIz4wPz86ntrWLfSdOex1HYoyKvkSdnr4AX1+zm9LcFO5eVup1nHOyaFomWZPiWa/RvowzFX2JOo+/eZhDDe3cf9NcEuMi92idD+L3GR+anU9NcyevH2jwOo7EEBV9iSqNbd189+UDfGROPldfkO91nPOypDiTjOR4vrv+gEb7Mm5U9CWqfP+3h+js7ee+6+d4HeW8xfl9LC/LZdORZt4+pKWXZXyo6EvUqDvdxZMbjrByceGEuQRheUk2eWmJfHf9Aa+jSIxQ0Zeo8b1XD9Lb7/jKijKvo4yaeL+PP14+g7cONrL5qEb7MvZU9CUqtHb28t8bq/jUksKIWTJ5tNyxtJjslAT+7eVKr6NIDFDRl6jwVmUD/QHHl6+ZOKP8MyYlxPHFq0p5bX8926tbvI4jE5yKvkS8nr4Am442cd28KUzz8NKHY+lzl5eQkRzPw69otC9jK6yib2bXmdk+M6s0s/uGeDzRzJ4JPb7RzEoGPLbQzDaY2W4z22lmkb8qlkSUrdXNdPUG+MKVJV5HGTOpiXH84ZWlvLTnJHuPn/I6jkxgZy36ZuYHHgGuB+YCt5vZ3EHN7gaanXOzgIeAb4WeGwc8BfyJc24e8GFAV4eWsDnneOtgI1Mzk7h4epbXccbU568sIS0xjofXa7QvYyeckf6lQKVz7pBzrgdYDawc1GYl8ETo9nPACgteyeJaYIdzbjuAc67ROdc/OtElFlTWtVF/upsrZuZG7MVRRktGcjyfu2I6a3cd51C9rq4lYyOcol8IVA+4XxPaNmQb51wf0ArkALMBZ2brzGyLmf31+UeWWLLhUCMpiXEsjJEliL9wZSmJcT6+9+pBr6PIBBVO0R9qeDX4nPHh2sQBy4DPhD5/0sxWvO8FzO4xswozq6ivrw8jksSCU1297DtxmvLpWcT5Y+OYg9zURFZdUszzW4/R0tHjdRyZgML5S6oBpg24XwTUDtcmNI+fATSFtr/mnGtwznUAa4Elg1/AOfeoc67cOVeel5c38u9CJqTt1S044KLiTK+jjKt7ls8A0EJsMibCKfqbgDIzKzWzBGAVsGZQmzXAXaHbtwDrXXAFqXXAQjObFHoz+BCwZ3Siy0TmnGNLVTPTspLJT4utA76mZibzB0sK2XSkibbuPq/jyARz1qIfmqO/l2AB3ws865zbbWYPmtnNoWaPATlmVgn8BXBf6LnNwLcJvnFsA7Y45345+t+GTDS1LV2cPNXNkgl+xM5w/uRDM+kPON6s1GhfRldY18h1zq0lODUzcNv9A253AbcO89ynCB62KRK2LVXNxPmMhYWxNbVzxoy8VOYXZvD2oUaWl+WRnBCd1w2QyBMbe8ckqvQFAmyvaWFOQXpMF7sPzc6juy/AxsONXkeRCURFXyJOZV0bHT39XDQtNkf5Z0zNTOaCyWm8UdlAT1/A6zgyQYQ1vSMynnbWtJIU72PW5ImxZv75+PAFeXz/t4eoONrEFTNzh2339Maq9227Y2nxWEaTKKWRvkSUvv4Ae46fYm5BBnE+/XpOz0lhevYk3gytMipyvvRXJRGlsq6N7r4AC2LkDNxwXFWWS3NHL7trW72OIhOAir5ElJ3HglM7M/Mn1oVSzseFBenkpCTwRmWDLqAu501FXyLGmamdeZraeQ+fGcvKcqlp7uRIY4fXcSTK6S9LIsaBM1M7RZraGeyiaVlMSvDz+gGtTSXnR0VfIsauY60kx/uZmaejdgZLiPOxtDSHfSdO09jW7XUciWIq+hIRes8ctTM1Hb9vYq+bf66WlmZjBm8f0slacu5U9CUi6Kids0tPjmfe1Aw2VzXrZC05Zzo5S8bESE8W2qmpnbBcMTOHncda2VrdzNLSHK/jSBTSSF8819sfYK+mdsJSnD2JqRlJbDjYqMM35Zyo6IvnNLUTPjPj8pk51J3u5nBju9dxJAqp6IvnNLUzMgsKM0mK91FxpNnrKBKFVPTFU129/ZraGaGEOB+LijLZdayVzp5+r+NIlFHRF0+9uq+e7r4AC3VC1oiUl2TTF3Bsr2nxOopEGRV98dQLO2pJSfAzI1dTOyNRmJnM1IwkKo40eR1FooyKvnimvbuPl/eeZH5hhqZ2zkF5STa1rV0ca+n0OopEERV98czL79bR1RtgYVFsXyHrXC0qyiTOZxrty4io6ItnXthey+T0RKbnTPI6SlRKTvAzvzCDbdUtOkNXwqaiL55o7ezltX31fHzBVHymqZ1zVV6SRXdfgF26wIqESUVfPPHSnpP09Ae4aVGB11GiWmlOCjkpCTpmX8Kmoi+eeGF7LUVZySyepvn882FmlJdkc6SxnYbTWnJZzk5FX8ZdU3sPb1Q2cOPCqZimds7bkuJMfAYVR7VDV85ORV/G3Yu7TtAfcJraGSVpSfFcMCWdzVUt9Ae0CJt8MBV9GXcvbK9lRm4KcwvSvY4yYVwyPYv27j7ePXHK6ygS4VT0ZVzVneri7cON3LhIUzujqWxyGulJcdqhK2eloi/jau3O4zgHNy3U1M5o8vuMJdOz2H/yNK2dvV7HkQgW1pWzzOw64DuAH/iBc+6bgx5PBJ4ELgYagducc0cGPF4M7AEecM798+hEl2j08+21XDgljbLJaV5HmXDKp2fz6r56Nh9t5poL84dsM9QVzeCDr2omE8tZR/pm5gceAa4H5gK3m9ncQc3uBpqdc7OAh4BvDXr8IeBX5x9XotnB+ja2VrXwyYsKvY4yIWWnJDAzL4XNR5sI6KpaMoxwpncuBSqdc4eccz3AamDloDYrgSdCt58DVlhowtbMPgEcAnaPTmSJVj/dXIPfZyr6Y6i8JJvmjl4O1euqWjK0cIp+IVA94H5NaNuQbZxzfUArkGNmKcDfAF//oBcws3vMrMLMKurr68PNLlEk4Bw/23KMD83OIz89yes4E9bcgnSS4/1s0iJsMoxwiv5Qh1gM/t9xuDZfBx5yzrV90As45x51zpU758rz8vLCiCTR5mBdGydOdXHLxUVeR5nQ4v0+Fhdnsuf4KZrae7yOIxEonB25NcC0AfeLgNph2tSYWRyQATQBS4FbzOyfgEwgYGZdzrmHzzu5RIThdgwOtrmqmYzkeFbMGXoHo4ye8ulZbDjYyPNbj3H3slKv40iECWekvwkoM7NSM0sAVgFrBrVZA9wVun0LsN4FXeWcK3HOlQD/CvxfFfzY09nTz57aU6xcPJXEOL/XcSa8goxkirKSeWZTFU47dGWQsxb90Bz9vcA6YC/wrHNut5k9aGY3h5o9RnAOvxL4C+C+sQos0WdrdTN9Aceny6edvbGMikumZ7P/ZBvbqnUNXXmvsI7Td86tBdYO2nb/gNtdwK1n+RoPnEM+iXLOOTYebqIoK5n5hbr4+XhZWJTBuj0nWP1ONRcVZ3kdRyKIzsiVMXW4sZ36090sLc3xOkpMSYz3c9PCqazZXqszdOU9VPRlTG081ERyvJ+FRRrlj7c7L59OZ28/z22u8TqKRBAVfRkzp7t62VN7iiXFmcT79as23uYXZrCkOJOn3j5KQEsuS4j+EmXMVBxtpt85Te146HOXl3C4oZ03Khu8jiIRQkVfxkRff4ANBxspy08lNy3R6zgx6/oFU8hNTeDJDUe8jiIRQkVfxsS26hbauvu4qkxnWHspMc7PqkuKefndOqqbOryOIxFARV9GXcA5Xj/QQEFGEjPzUryOE/M+e9l0/GY8/uZhr6NIBFDRl1G378Rp6tu6uaosT1fHigBTMpK4edFUntlUTWdPv9dxxGMq+jLqXj9QT2ZyPAt0MlbE+OJVM+jo6eedw41eRxGPhXVGrsSeoRZSC+fqSgfr2zjS2MGNCwvw+zTKjxRzp6azbFYubx1q5MqyXOJ87x3vnevPW6KPRvoyapxzvLTnJOlJcVxSku11HBnkj5bP4HRXH9urW72OIh5S0ZdRs/9kG1VNHVx9Yb5OxopAy8tymZKexGv763U5xRimv0wZFc45Xtp7gqxJ8Vw8XQt8RSIz48MX5NHQ1s2uYxrtxyoVfRkVO4+1UtvSxYo5k983XyyRY35hBnmpibyyr06j/Rilv045bz19AX616wQFGUksnpbpdRz5AD4zrr4wj5Onutl7/JTXccQDKvpy3l7bX0drZy83LpyKT8flR7wFhZnkpCSw/t06XVkrBqnoy3lpbOvmtwcaWDwtk9JcnX0bDfw+4+oL8zne2sWuWo32Y42Kvpwz5xwv7KjF7zOumzfF6zgyAounZTI5PZFf7z5Bv5Zdjikq+nLOfrK5hv0n2/jonMmkJ8d7HUdGwGfGtXOn0NjeQ8XRJq/jyDhS0ZdzUtvSyT+8sIfS3BQun6n18qPRhVPSmJ4zifV76+jpC3gdR8aJir6MmHOOv/npDvqd41NLirTzNkqZBaflTnf38eZBXWQlVqjoy4g99sZhXj/QwFdvmEN2SoLXceQ8TM9JYc6UNH67v5727j6v48g4UNGXEdlS1cw3f/UuH5s3mc9qQa4J4dp5U+jpC/Dqvjqvo8g40CqbMW6o1RWH09LRw5ef3sqUjCT+6ZZFWit/gpicnsSS4izePtzEFbNyyZqk/94mMo30JSwB5/jK6m3Une7ikTuWkKGjdSaUFXPyMeA3e056HUXGmIq+hGXd7hO8tr+er988n0VaamHCyZyUwOUzc9hW3cKxlk6v48gYUtGXs9pW3czrBxq487LpurDGBHb1BfkkJ/hZu/O4lmeYwFT05QPVNHfwsy3HKM1N4f6b5nodR8ZQUryfj8yZzOGGdi3GNoGFVfTN7Doz22dmlWZ23xCPJ5rZM6HHN5pZSWj7R81ss5ntDH2+ZnTjy1g63dXLU28fJTUpjtsvLdaFUWLAJSXZ5KUl8qtdJ3TC1gR11r9iM/MDjwDXA3OB281s8JDvbqDZOTcLeAj4Vmh7A3CTc24BcBfwo9EKLmOrrz/Af2+sorO3nzsvm05qog70igV+n3HD/AIa23t4csMRr+PIGAhn6HYpUOmcO+Sc6wFWAysHtVkJPBG6/RywwszMObfVOVcb2r4bSDKzxNEILmPHOcea7bVUNXVwy8XTKMhI9jqSjKPZk1Mpy0/l314+QHN7j9dxZJSFM3wrBKoH3K8Blg7XxjnXZ2atQA7Bkf4ZnwK2Oue6B7+Amd0D3ANQXKwdhV7bcKiRiqPNXH1BHgsKM7yOI+PMzLh+QQEPrz/Ad14+wAM3z/vdY8Od16Ed/NEjnJH+UGfgDN61/4FtzGwewSmfPx7qBZxzjzrnyp1z5Xl5eWFEkrFysL6NtTuPM2dKGivmTPY6jnhkSnoSqy4t5kdvH6Wyrs3rODKKwin6NcC0AfeLgNrh2phZHJABNIXuFwHPA59zzh0838Aydprae3h6YxW5qYncWj5NC6nFuD//yGyS4/384y/36BDOCSScor8JKDOzUjNLAFYBawa1WUNwRy3ALcB655wzs0zgl8BXnXNvjlZoGX3dff089fZRAO68bDpJ8X6PE4nX8tIS+cqKMl7dV8/Le7Uuz0Rx1jn90Bz9vcA6wA887pzbbWYPAhXOuTXAY8CPzKyS4Ah/Vejp9wKzgL83s78PbbvWOaffIA8MNx8bcI7nNtdw8lQXn7+yhJxU7WuXoM9fWcIzFdV8/Re7WVaW63UcGQVhHYfnnFsLrB207f4Bt7uAW4d43j8C/3ieGWWMvXGggd21p7hh/hTK8tO8jiMRJN7v48Gb53HHDzby/dcOkZemAUG009k2Me5IQzu/3nOC+YUZXDlLIzl5vytm5fLxhQX8+6uVNLS97+A7iTIq+jGsrbuP1ZuqyJqUwB9cVKilkmVY9984l4Q4Hz/bcoyAdupGNRX9GBVwjp9UVNPR088dS4u141Y+0OT0JP7+43M50tjOpiO6kHo0U9GPUa/sq+NAXRs3LZqqM24lLLeWFzErL5UXd52gpUNn6kYrFf0YVFnXxvq9dVw0LZPy6Vlex5EoYWZ84qJCHPBsRTX9AU3zRCMV/RhzqrOXZyqqyUtLZOVizePLyGSnJPCJxVM50tjB+nd15HU00tKJMaQ/4Fi9qZqevn6+uKyUhDi958vILZ6WRWVdO6/uq2NGXgoz81KHPAdE6/FEJv3Vx5Df7D3JkcZ2PrG4kMnpSV7HkSh286Kp5KYmsvqdKpq0EmdUUdGPEa+8W8dr++u5pCSLi4o1jy/nJyHOx2cvm06/czy54Qhdvf1eR5IwqejHgGMtnfz5s9soyEjixoVTvY4jE0ReWiKfWTqdhrZufvxOlXbsRgkV/Qmupy/AvU9voa/f6ZKHMupm5qXyicWFHKhr4xkd0RMVtCN3gvvWi++ytaqFf//MElo6er2OIxNQeUk2Xb39rN11Ar+hZbkjnIZ9E9iLu07w2BuH+fwVJdywoMDrODKBLSvL42PzprC9ppVnNlXT16+LqkcqjfQnqKON7fzVc9tZNC2Tv71hjtdxJAZ8aHYeBry4+wTtPX18ckkhaUnxXseSQVT0J6Cu3n6+9PQWfGY8fPtFOh5fxs3y2XmkJsXxsy013PofG3j0znKKcya9p42O6feWqsEEEwg4/uLZbeyuPcW3P72IadmTzv4kkVG0pDiLz11eQm1LJzd+93Ve0Zm7EUVFf4L5f7/ex9qdJ/jb6+fowubimdmT0/jFl6+iMGsSX/ivTTz4wh46evq8jiVoemdCeXLDEb736kHuWFrMF68q9TqOxLjinEk8/7+u4Bu/3Mvjbx7mN3tP8o1Pzh+yraZ8xo+KfpQ788fy2r461u05yZwpaXz95nlaSE0iQlK8n3/4xHw+vrCA+366gzsfe4ey/FQ+Nm8KUzO1pLcXNL0T5foDjl/tPM66PSdZWJTBHUun6wQsiTiXzcjhxT9bzv/5+Bxqmjt5+JVKnnjrCIca2nC6Ete40kg/igz+F7ipvYdnK6qpaupgaWk2Ny2aqpNiJGIlxfv54lUzMIy3DjWw4WAjP3j9MEVZySwvy2Pu1HT9/o4DFf0o1NsfYMPBRl7ZV4cZ3HbJNBYVZXodSyQsyQl+Vlw4matm5bGlqpk3Kht4+p0qclISWFaWy5LiLP23OoZU9KNIX3+ArVUtrN9XR2tnLxdMTmPl4qlkTkrwOprIiCXE+bhsRg6Xlmazu/YUrx+o5+fbavnNnpNcPjOH6+dPIStFv9ujTUU/CrR29rL6nSoefqWS0119FGUlc+vFRczIS/U6msh585mxoDCD+VPTOdzYzuv7G/jN3jqu+OZ6brtkGncvK9X5JqNIRT+CVdad5r/eOsJPNx+js7efGXkp3HJx8OLUOjpHJhozY0ZuKjNyUzlxqotjzZ089fZRfvT2UT6+oIB7ls9gfmGG1zGjnop+hOnpC/Da/nqe3HCE1w80kOD3cfPiqXz+ihJ21LR6HU9kXExJT2JKehKz8lN5q7KBdbtPsGZ7LbPyUvnazXNZNitXA59zpKIfAdq6+9h4qJH179bxy53HaenoZXJ6In957WxWXVpMbmoigIq+xJyM5HiuX1DA1Rfm887hJt482MCdj73D3IJ0/nBZKdfNn0JqosrYSKi3xsnTG6sIOMepzl4a23toaOvmeGsXtS2d1LZ0EnAQ7zfmFKTz7U+XcVVZno5gEAlJivezfHYeV8zMISnez6OvH+Ivf7Kdv3t+J1dfkM+KOflcVZbHlAxd+/lswir6ZnYd8B3AD/zAOffNQY8nAk8CFwONwG3OuSOhx74K3A30A3/qnFs3aukjUF9/gGMtnRxp7OBoYztHGoKfdxxrpbm9h74BVxZKjPMxNTOZZbPyKJucSnH2JOL9Pq65UGvmiAwlzu/j05dM45aLi9hS1cwL22v51a4TvLj7BAD5aYmU5acyKz+VwqxJ3LN8hseJI89Zi75fvCKdAAAHe0lEQVSZ+YFHgI8CNcAmM1vjnNszoNndQLNzbpaZrQK+BdxmZnOBVcA8YCrwGzOb7ZyL2qso9wccjW3d1LZ2caK1kxe2H6exvZvGth4a23to6ehh4BXjkuP9TM+ZRF5qIhdOSSMnJZGc1ASyUxLISI7XySgi58DnM8pLsikvyeaBm+fx7Zf2c+BkG5V1bWw83MSbBxsBePyNw8ybms68wgxmT06lICOJyelJ5KclxeyS4+GM9C8FKp1zhwDMbDWwEhhY9FcCD4RuPwc8bMG9LCuB1c65buCwmVWGvt6G0Yk/POccAQd9gQCBwHs/9/QHaO/up6Onj7buPjq6+2nv6fvdtvbQ/VOdvbR09NLaGfxo6eih7nT3e0brEByx56YmUpiZzMKiDG5YUEBJTgolOZPIS0vEzIZcUEpEzp+ZUZCRTEFGMstn59HTF6C6uYPalk6Ot3ax41gr69+tY/BiDzkpCWSlJJCSGEdKgv93nyclxpGaGEdyvJ/EeB+JcX4S43zBj/gBt+POPP77Nj6fEecz/D7Db4bfH7zvs99v93oHdDhFvxCoHnC/Blg6XBvnXJ+ZtQI5oe1vD3pu4Tmn/QA7alq47ftv0x9w9Dt33hdojvMZyfF+khP8v/s8OT2J2ZPTSE+OJ2PAx6QE/3t+kJ8un3a+346InKOEOB8z81KZOeA8lp6+AI3t3Zzq7GNOQRonT3Vz4lQXrZ09tHX3c7Shne6+4ICwu7efnv4Avf1jsyaQzyDO58OM4AfB2mEG188v4F8+vWhMXvcMO9tiR2Z2K/Ax59wXQ/fvBC51zn15QJvdoTY1ofsHCY7oHwQ2OOeeCm1/DFjrnPvpoNe4B7gndPcCYF8Y2XOBhjDajbdIzQWRmy1Sc0HkZovUXKBs52I0ck13zuWdrVE4I/0aYODQtQioHaZNjZnFARlAU5jPxTn3KPBoGFl+x8wqnHPlI3nOeIjUXBC52SI1F0RutkjNBcp2LsYzVzh7MjYBZWZWamYJBHfMrhnUZg1wV+j2LcB6F/wXYg2wyswSzawUKAPeGZ3oIiIyUmcd6Yfm6O8F1hE8ZPNx59xuM3sQqHDOrQEeA34U2lHbRPCNgVC7Zwnu9O0DvhTNR+6IiES7sI7Td86tBdYO2nb/gNtdwK3DPPcbwDfOI+NwRjQdNI4iNRdEbrZIzQWRmy1Sc4GynYtxy3XWHbkiIjJxxObZCSIiMSrii76ZJZnZO2a23cx2m9nXQ9tLzWyjmR0ws2dCO5kjJdt/mdlhM9sW+lg83tlCOfxmttXMfhG673mfDZMrUvrriJntDGWoCG3LNrOXQn32kpllRVC2B8zs2IB+u8GDXJlm9pyZvWtme83s8gjqs6GyRUKfXTDg9beZ2Skz+7Px6reIL/pAN3CNc24RsBi4zswuI7jUw0POuTKgmeBSEJGSDeCvnHOLQx/bPMgG8BVg74D7kdBn8P5cEBn9BXB1KMOZw+fuA14O9dnLofteGZwNgj/PM/22dthnjp3vAC865y4EFhH8uUZKnw2VDTzuM+fcvjOvT3C9sg7gecap3yK+6LugttDd+NCHA64huOQDwBPAJyIom+fMrAj4OPCD0H0jAvpscK4osJJgX4FHfRapzCwdWE7w6D2ccz3OuRYioM8+IFukWQEcdM4dZZz6LeKLPvxuOmAbUAe8BBwEWpxzfaEmY7a8w0izOec2hh76hpntMLOHLLgK6Xj7V+CvgUDofg6R0WeDc53hdX9B8A3712a2OXSWOMBk59xxgNDn/AjKBnBvqN8e92AaZQZQD/wwNF33AzNLITL6bLhs4G2fDbYK+HHo9rj0W1QUfedcf+hfoSKCyzvMGarZ+KYKveigbGY2H/gqcCFwCZAN/M14ZjKzG4E659zmgZuHaDqufTZMLvC4vwa40jm3BLge+JKZLfcox1CGyvY9YCbBqcXjwL+Mc6Y4YAnwPefcRUA73k5/DTRcNq/77HdC+9RuBn4ynq8bFUX/jNC/Z68ClwGZFlzyAYZZ3mE8Dch2nXPueGjqpxv4IcE3qvF0JXCzmR0BVhOc1vlXvO+z9+Uys6cioL8AcM7Vhj7XEZxjvRQ4aWYFAKHPdZGSzTl3MjToCAD/yfj3Ww1QM+C/2+cIFtpI6LMhs0VAnw10PbDFOXcydH9c+i3ii76Z5ZlZZuh2MvARgjtkXiG45AMEl4D4eYRke3fAD84IzsvtGs9czrmvOueKnHMlBP99XO+c+wwe99kwuT7rdX+FXjvFzNLO3AauDeUYuMSIV79nQ2Y7028hn2T8f89OANVmdkFo0wqCZ9973mfDZfO6zwa5nd9P7cB49ZtzLqI/gIXAVmAHwR/Q/aHtMwiu41NJ8N+jxAjKth7YGdr2FJDqYf99GPhFpPTZMLk8769Q32wPfewG/i60PYfgkRQHQp+zIyjbj0L9toNgwSjwINtioCKU4X+ArEjosw/I5nmfhbJNIniVwYwB28al33RGrohIDIn46R0RERk9KvoiIjFERV9EJIao6IuIxBAVfRGRGKKiLyISQ1T0RURiiIq+iEgM+f8vcn/xP0u2SgAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "binomial = np.random.binomial(100, 0.5, 10000)\n",
    "import seaborn as sns\n",
    "print(binomial)\n",
    "sns.distplot(binomial)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "贝塔分布\n",
    "beta(a,b)从Beta(a,b)分布中生成一个随机数。Beta(a,b).rsv(n)生成一个n维的数组，每个数据都是Beta(a,b)分布中的随机数"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "D:\\Anaconda\\lib\\site-packages\\scipy\\stats\\stats.py:1713: FutureWarning: Using a non-tuple sequence for multidimensional indexing is deprecated; use `arr[tuple(seq)]` instead of `arr[seq]`. In the future this will be interpreted as an array index, `arr[np.array(seq)]`, which will result either in an error or a different result.\n",
      "  return np.add.reduce(sorted[indexer] * weights, axis=axis) / sumval\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x22ea3be96a0>"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "from scipy import stats\n",
    "beta = stats.beta(3,4).rvs(10000)\n",
    "sns.distplot(beta)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "相关系数\n",
    "两个随机变量之间的相关性与独立性是统计学研究的一个非常重要的话题。\n",
    "统计上用协方差来描述两个随机变量间的“线性”关联性"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[0.4978451 , 0.48432704],\n",
       "       [0.48432704, 0.97376166]])"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y = np.random.normal(size=10000)\n",
    "x = 0.5 * y + 0.5 * np.random.normal(size = 10000)\n",
    "np.cov(x, y)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "上面得到的结果矩阵中，矩阵的对角线元素就是两个随机变量之间的写协方差。\n",
    "\n",
    "但是用协方差描述相关性存在一个问题，就是会受到随机变量的量纲影响。\n",
    "为了避免量纲上的区别造成的差异，统计学中引入了皮尔逊相关系数"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[1.        , 0.69560911],\n",
       "       [0.69560911, 1.        ]])"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.corrcoef(x, y)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "上面得到的结果矩阵中，斜对角线上的数值代表了两个变量的相关系数值，该数值区间为[-1,1]，完全不受量纲影响"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "下面看几个基本统计量\n",
    "1. mean"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "9.5"
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x = np.arange(20)\n",
    "x.mean()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "9.5"
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.mean(x)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ 0,  1,  2,  3],\n",
       "       [ 4,  5,  6,  7],\n",
       "       [ 8,  9, 10, 11],\n",
       "       [12, 13, 14, 15],\n",
       "       [16, 17, 18, 19]])"
      ]
     },
     "execution_count": 25,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x = np.reshape(np.arange(20), (5, 4))\n",
    "x"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([ 8.,  9., 10., 11.])"
      ]
     },
     "execution_count": 26,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.mean(x,0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([ 1.5,  5.5,  9.5, 13.5, 17.5])"
      ]
     },
     "execution_count": 27,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x.mean(1)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "median 用于计算数组的中位数，函数的第二个参数可以用来选择不同的维度进行计算"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[-0.08800669, -1.29094416,  2.25450066, -0.81361156,  0.72676806],\n",
       "       [-0.05608779, -0.29046257,  1.99165091,  1.61180743,  1.74965558],\n",
       "       [ 1.28148298,  0.18801836, -0.16259339, -1.64905396, -0.40818629],\n",
       "       [ 1.00074594, -0.08907253, -1.0097139 ,  0.29347977, -0.35114503]])"
      ]
     },
     "execution_count": 29,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x = np.random.randn(4, 5)\n",
    "x"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "-0.07204724034016408"
      ]
     },
     "execution_count": 30,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.median(x)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([ 0.47232907, -0.18976755,  0.91452876, -0.2600659 ,  0.18781151])"
      ]
     },
     "execution_count": 31,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.median(x, 0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([-0.08800669,  1.61180743, -0.16259339, -0.08907253])"
      ]
     },
     "execution_count": 32,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.median(x,1)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "频率分布直方图：其实是对一个变量的分布密度函数进行近似估计的一个手段\n",
    "1. histogram\n",
    "histogram返回两个值，第一个值是k维的向量，包含了每个箱体中的样本数量\n",
    "第二个值是k+1个标识箱体的端点值"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(array([ 2.,  3., 10., 14., 21., 20.,  8., 17.,  4.,  1.]),\n",
       " array([-2.44016383, -1.95505635, -1.46994887, -0.98484139, -0.49973391,\n",
       "        -0.01462643,  0.47048105,  0.95558853,  1.44069601,  1.92580348,\n",
       "         2.41091096]),\n",
       " <a list of 10 Patch objects>)"
      ]
     },
     "execution_count": 34,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "x = np.random.normal(size = 100)\n",
    "his = np.histogram(x, bins = 10)\n",
    "plt.hist(x, bins = 10)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "2. histogram2d：可用于计算2维的直方图数据"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(array([[0., 0., 0., ..., 0., 0., 0.],\n",
       "        [0., 0., 0., ..., 0., 0., 0.],\n",
       "        [0., 0., 0., ..., 0., 0., 0.],\n",
       "        ...,\n",
       "        [0., 0., 0., ..., 0., 0., 0.],\n",
       "        [0., 0., 0., ..., 0., 0., 0.],\n",
       "        [0., 0., 0., ..., 0., 0., 0.]]),\n",
       " array([-4.15280117, -4.0666742 , -3.98054722, -3.89442025, -3.80829328,\n",
       "        -3.7221663 , -3.63603933, -3.54991236, -3.46378539, -3.37765841,\n",
       "        -3.29153144, -3.20540447, -3.1192775 , -3.03315052, -2.94702355,\n",
       "        -2.86089658, -2.77476961, -2.68864263, -2.60251566, -2.51638869,\n",
       "        -2.43026172, -2.34413474, -2.25800777, -2.1718808 , -2.08575383,\n",
       "        -1.99962685, -1.91349988, -1.82737291, -1.74124594, -1.65511896,\n",
       "        -1.56899199, -1.48286502, -1.39673805, -1.31061107, -1.2244841 ,\n",
       "        -1.13835713, -1.05223016, -0.96610318, -0.87997621, -0.79384924,\n",
       "        -0.70772226, -0.62159529, -0.53546832, -0.44934135, -0.36321437,\n",
       "        -0.2770874 , -0.19096043, -0.10483346, -0.01870648,  0.06742049,\n",
       "         0.15354746,  0.23967443,  0.32580141,  0.41192838,  0.49805535,\n",
       "         0.58418232,  0.6703093 ,  0.75643627,  0.84256324,  0.92869021,\n",
       "         1.01481719,  1.10094416,  1.18707113,  1.2731981 ,  1.35932508,\n",
       "         1.44545205,  1.53157902,  1.61770599,  1.70383297,  1.78995994,\n",
       "         1.87608691,  1.96221388,  2.04834086,  2.13446783,  2.2205948 ,\n",
       "         2.30672177,  2.39284875,  2.47897572,  2.56510269,  2.65122967,\n",
       "         2.73735664,  2.82348361,  2.90961058,  2.99573756,  3.08186453,\n",
       "         3.1679915 ,  3.25411847,  3.34024545,  3.42637242,  3.51249939,\n",
       "         3.59862636,  3.68475334,  3.77088031,  3.85700728,  3.94313425,\n",
       "         4.02926123,  4.1153882 ,  4.20151517,  4.28764214,  4.37376912,\n",
       "         4.45989609]),\n",
       " array([-4.44323867, -4.35661395, -4.26998923, -4.18336451, -4.09673978,\n",
       "        -4.01011506, -3.92349034, -3.83686561, -3.75024089, -3.66361617,\n",
       "        -3.57699144, -3.49036672, -3.403742  , -3.31711727, -3.23049255,\n",
       "        -3.14386783, -3.05724311, -2.97061838, -2.88399366, -2.79736894,\n",
       "        -2.71074421, -2.62411949, -2.53749477, -2.45087004, -2.36424532,\n",
       "        -2.2776206 , -2.19099588, -2.10437115, -2.01774643, -1.93112171,\n",
       "        -1.84449698, -1.75787226, -1.67124754, -1.58462281, -1.49799809,\n",
       "        -1.41137337, -1.32474865, -1.23812392, -1.1514992 , -1.06487448,\n",
       "        -0.97824975, -0.89162503, -0.80500031, -0.71837558, -0.63175086,\n",
       "        -0.54512614, -0.45850142, -0.37187669, -0.28525197, -0.19862725,\n",
       "        -0.11200252, -0.0253778 ,  0.06124692,  0.14787165,  0.23449637,\n",
       "         0.32112109,  0.40774582,  0.49437054,  0.58099526,  0.66761998,\n",
       "         0.75424471,  0.84086943,  0.92749415,  1.01411888,  1.1007436 ,\n",
       "         1.18736832,  1.27399305,  1.36061777,  1.44724249,  1.53386721,\n",
       "         1.62049194,  1.70711666,  1.79374138,  1.88036611,  1.96699083,\n",
       "         2.05361555,  2.14024028,  2.226865  ,  2.31348972,  2.40011444,\n",
       "         2.48673917,  2.57336389,  2.65998861,  2.74661334,  2.83323806,\n",
       "         2.91986278,  3.00648751,  3.09311223,  3.17973695,  3.26636167,\n",
       "         3.3529864 ,  3.43961112,  3.52623584,  3.61286057,  3.69948529,\n",
       "         3.78611001,  3.87273474,  3.95935946,  4.04598418,  4.13260891,\n",
       "         4.21923363]),\n",
       " <matplotlib.image.AxesImage at 0x22ea42e6fd0>)"
      ]
     },
     "execution_count": 37,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "x = np.random.normal(size = 100000)\n",
    "y = np.random.normal(size = 100000)\n",
    "plt.hist2d(x, y, bins = [100, 100])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "上图怎么理解呢：生成的histogram三维数组，数组的第一维其实是一个矩阵，代表了立体图对应的x，y坐标对应的第三维坐标z值得大小，颜色得深浅代表了该处z值得大小，也就代表了x，y在该点附近得分布密集程度"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.0"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
